<?
header('Content-Type: text/html; charset=utf-8');
require_once "../../inc/Uifunction.php";
require_once "../../inc/Function.Libary.php";
///*----------------------------------------------------------------*/
///*获取当年是不是闰年*/

function M_2($Y)
{
	if(date("L",strtotime($Y)))
	{
		return 29;
	}
	else
	{
		return 28;
	}
	/*
	if(($Y %2 ==0 and $Y %100<>0) or ($Y % 400==0))
	{
		return 29;
	}
	else
	{
		return 28;
	}
	*/
}

/**
判断循环到的当前时间和今天的时间做比较
@param $d1大于或等于今天是时返回true 否则返回false
*/
function mydifftime($d1)
{
	if(strtotime($d1)-strtotime(date("Y-m-d"))>=0)
	{
		return true;
	}
	else
	{
		return false;
	}
}





///*获取当年是不是闰年 end*/

///*获取当月天数*/
///*函数 M_NUM*/


/**
 * 获取每个月份有多少天数
 * @param  $Y 年
 * @param  $M 月
 * @return 返回天数
 */
function M_NUM($Y,$M)
{
	switch($M){
		case 0:	return 31;
		case 1: return 31;
		case 2: return 	M_2($Y);
		case 3: return 31;
		case 4: return 30;
		case 5: return 31;
		case 6: return 30;
		case 7: return 31;
		case 8: return 31;
		case 9: return 30;
		case 10: return 31;
		case 11: return 30;
		case 12: return 31;
		case 13: return 31;
	}
	
}




///*获取当月1号是星期几*/
///*函数 M_D_1*/ /*1=日 .. 7=六*/
/**
 * 返回星期几
 * @param  $Y 年
 * @param  $M 月
 */
function M_D_1($Y,$M)
{
	return date("w",strtotime($Y."-".$M."-1"))+1;
}


///*获取一共该显示多少个格子*/
///*变量 G*/
/**
 * 获取一共该显示多少个格子
 * @param $M_NUM
 * @param $M_D_1
 */
function G($M_NUM,$M_D_1)
{

	$TEMP=$M_NUM+$M_D_1 -1;
	if($TEMP % 7 !=0)
	{
		$TEMP=$TEMP+(7-($TEMP %7));
		
	}
	return $TEMP;
}


///*显示函数*/
function XS($I,$Y,$M)
{
	$TEMP="";
	if($I==M_D_1($Y,$M)) $TEMP="1";//*1号*/
	if($I > M_D_1($Y,$M) and $I<=(M_NUM($Y,$M)+ M_D_1($Y,$M)-1)) $TEMP=1+($I - M_D_1($Y,$M));//*1号之后*/
	return $TEMP;
	
}

//*----------------------------------------------------------------*/
//*初始化数据*/
$DATE_ = $_GET["DATE_"];
if($DATE_=="") $DATE_=date("Y-m-d");
$DATE_ARR=explode("-",$DATE_);
$Y=$DATE_ARR[0];//年份值
$M=$DATE_ARR[1];//月份值
$D=$DATE_ARR[2];//日值




/*参数说明
// 当前日期	 DATE_ 		格式 2010-11-11
'/*选择方式 只能选一种 可和时间段任意搭配*/
/*' 选择每周几 week  		格式 1=一,2=二,3=三,4=四,5=五,6=六,7=天
' 任意日期用 rydate 	格式 1-1,1-2,2-5,6-5
' 每天发团   mtft		格式 1 1=每天发团
'/*时间段 可和上面三种任意搭配
 时间段	 sjd		格式 8-1->10-6

'/*测试参数

ydate	= "8-1,8-2,8-7,8-10"
sjd 	= "2010-8-1->2010-9-15" /*时间段
*/







$zhouqi=$_REQUEST["zhouqi"];//发团周期  值为空时($indate)又为空时为每天发团     当为周三，周四时，表示每周发团  多个值用,号分隔

$rydate	= $_GET["rydate"];
$sjd 	= $_GET["sjd"]; 		//*时间段*/
$tqts	= $_GET["tqts"];		 //*几天后开始选 空为不限制*/
$input_ID= $_GET["input_ID"];	//*标签ID*/
$rydate=$_GET["rydate"];//日期类型  为空时为时间段可选  anydate 为任意一天或任意多天
$guanli=$_GET["guanli"];//为后台管理时可选择多个日期
$otherhtml=gettypehtm($rydate);//当是anydate时，在每个日期值下加一个复选框
$indate=$_GET["indate"];//显示已经有的有效期  多个时间天数值时有 效  如2010-10-25,2010-10-27 

$startdateArr=explode("->",$sjd);
$startdate=$startdateArr[0];
$enddate=$startdateArr[1];

$SY=date("Y",strtotime($startdate));//开始的年份

if($tqts=="") $tqts=1;//提前天数,当是提前天数时




//返回不同类型日期的不同值
function gettypehtm($rydate)
{
	if($rydate=="anydate")
	{
		return "<br><input type='checkbox' name='anydate[]' value='' onclick='' ischeck>";
	}
	else
	{
		return "";
	}
	
}

if($indate!="">0)
{
	$indateArr=explode(",",$indate);
}

if($zhouqi!="")
{
	$ZhouqidArr=explode(",",$zhouqi);
}

if($week == "")  $mtft = "1";
?>
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style>
<script>
function up_m()
{
	window.location.href='?DATE_=<? echo getpmodth($Y."-".$M."-1");?>&mtft=<? echo $mtft;?>&week=<? echo $week;?>&rydate=<? echo $rydate;?>&sjd=<? echo $sjd;?>&input_ID=<? echo $input_ID; ?>&tqts=<? echo $tqts;?>&indate=<? echo $indate;?>&guanli=<? echo $$guanli?>&zhouqi=<? echo $zhouqi;?>';
	
	
}
function down_m()
{
	window.location.href='?DATE_=<? echo getnextmodth($Y."-".$M."-1");?>&mtft=<? echo $mtft;?>&week=<? echo $week;?>&rydate=<? echo $rydate;?>&sjd=<? echo $sjd;?>&input_ID=<? echo $input_ID;?>&tqts=<? echo $tqts;?>&indate=<? echo $indate;?>&guanli=<? echo $$guanli?>&zhouqi=<? echo $zhouqi;?>';
}
</script>
<table width="200" height="250" border="0" cellpadding="4" cellspacing="1" bgcolor="#000000">
<tr align="center">
	<td colspan="7" bgcolor="#FFFFFF;"><a href="javascript:up_m();">上月</a> 【<? echo  $Y."-".$M;?>】 <a href="javascript:down_m();">下月</a></td>
</tr>
<tr align="center" style="background:#0099CC">
    <td>日</td>
    <td>一</td>
    <td>二</td>
    <td>三</td>
    <td>四</td>
    <td>五</td>
    <td>六</td>
</tr>
<?

//*日历显示*/
?>
<tr align=center>
<?
//*时间段*/'

//sjd_cz = py_z_count(sjd,"([\d]*?-[\d]*?-\>[\d]*?-[0-9]+)",20)/

if(preg_match("([\d]*?-[\d]*?-\>[\d]*?-[0-9]+)",$sjd,$tAt)>0)//*不存在时间段0*/
{
	$sjd_cz=$tAt[0];
}
else
{
	$sjd_cz=false;
}

//die($sjd_cz);
if($sjd_cz)
{
	 $sjd=$sjd_cz;
	 $sjd_arr=explode("->",$sjd);
	 $sjd_b=$sjd_arr[0];
	 $sjd_e=$sjd_arr[1];
	 $sjd_b_Arr=explode("-",$sjd_b);
	 $sjd_e_Arr=explode("-",$sjd_e);
	 
	 $sjd_b_M=$sjd_b_Arr[0];//开始月
	 $sjd_b_D=$sjd_b_Arr[1];//开始日
	 $sjd_e_M=$sjd_e_Arr[0];//结束月
	 $sjd_e_D=$sjd_e_Arr[1];//结束日
	 
	 
}
$last_b_M=$sjd_b_M;//最终的开始月份
$last_b_D=$sjd_b_D;//最终的开始日
$last_tqts=$tqts*24*60*60;//转换成一天的秒数



$getdaysnum=getwogdays($sjd_e,$sjd_b);//获取这个时间段相差的天数

/*
计算两个时间之间相隔的天数
传入形式 10-11, 11-10
如果$enddat的月数比$startdate小，则表示是第二年的
*/
function getwogdays($startdate,$enddate)
{ 
	 $Y1= $Y2=date("Y");
	 $sjd_b_Arr=explode("-",$startdate);
	 $sjd_e_Arr=explode("-",$enddate);
	 $sjd_b_M=$sjd_b_Arr[0];//开始月
	 $sjd_e_M=$sjd_e_Arr[0];//结束月
	
	 
	 if($sjd_e_M>$sjd_b_M)
	 {
		 $Y2=$Y2+1;
	 }
	return  difftime_i(strtotime($startdate),strtotime($enddate));
}



//*循环格子*/
$num=G(M_NUM($Y,$M),M_D_1($Y,$M));
/*
$num=$num+7;
if($num%7!=0)
{
	 for($i=1;$i<7;$i++)
	 {
	 	$num=$num+$i;
	 	if($num % 7==0) break;
	 }
}*/
$in=1;
$in2=1;
for($i=1;$i<=$num;$i++)
{ 
?>
	<td bgcolor="#FFFFFF">
	<?
	
	
	//*每天都可以*/
	if($mtft=="1") $click_=$i;

	//*处理指定周*/
	if($week!="")
	{
		$week_arr=explode(",",$week);
		$week_len=count($week_arr);
		for($week_i=0;$week_i<$week_len;$week_i++)
		{
			$t_w=(int)$week_arr($week_i) +1;
			if($t_w==7) $t_w==0;
			if($t_w==8) $t_w==1;
			if($i=$t_w+(int)($i/7)*7) $click_=$i;
		}
	}

	//*处理时间段*/
	if($sjd_cz)
	{
		$di = XS($i,$Y,$M);
		If($di == "") $di = 1;
		$Y1=($sjd_b_M >$sjd_e_M)?(int)$Y+1:$Y;
		$Y1=($sjd_b_M=$sjd_e_M and $sjd_b_D>$sjd_e_D)?$Y1=(int)$Y+1:$Y;
		$Y2=(($Y>date("Y") and $sjd_b_M>$sjd_e_M) or ($Y>date("Y") and $sjd_b_M==$sjd_e_M and $sjd_b_D>$sjd_e_D) )?$Y:$Y;

		$time1 = $Y2;
		$time1=($sjd_b_M<10)?$time1."0".$sjd_b_M:$time1.$sjd_b_M;
		
		$time1=($sjd_b_D<10)?$time."0".$sjd_b_D:$time1.$sjd_b_D;
		
		$time2 = $Y1;
		$time2=($sjd_e_M<10)?$time2."0".$sjd_e_M:$time2.$sjd_e_M;
		$time2=($sjd_e_D<10)?$time2."0".$sjd_e_D:$time.$sjd_e_D;
		
		$time_n = $Y;
		$time_n=($M<10)?$time_n."0".$M:$time_n.$M;
		$time_n=($di<10)?$time_n."0".$di:$time_n.$di;
		$click_=($time1<=$time_n and $time_<=$time2)?$click_:0;
	
	//*处理时间段 end*/
	
		
	}
	
	//*提前天数处理*/
	if($tqts!="" )
	{
		$di=XS($i,$Y,$M);
		if($di=="") $di=1;
		
		$endtime=strtotime($SY."-$last_b_M"."-".$last_b_D)-$last_tqts;
		$starttime=strtotime($Y."-".$M."-".$di);
		
		$sdn=difftime_i($endtime,$starttime,"1");//两个时间相差的天数
		//echo date("Y-m-d",$endtime)."||".date("Y-m-d".$starttime);
		 
		$click_=(difftime_i($starttime,$endtime,"1")>=0)?$click_:0;
		
	}
	
	//*提前天数处理 end*/
	//echo $sdn."#$getdaysnum#";
	$ervyfday=M_D_1($Y,$M);//每个月的第一天的星期
	$ervyfday=date("w",strtotime(date("$Y-$M-1")));
	
	if($rydate=="anydate" and $i>=$ervyfday)
	{
		
		$dnum=date("Y-M-d");
		if($in<=M_NUM($Y,$M) and $i>$ervyfday)
		{
			if(strtotime($Y."-".$M."-".$in)>=strtotime($dnum))
			{
						$otherhtml=gettypehtm($rydate);
				$otherhtml=str_replace("value=''","value='".$Y."-".$M."-".$in."'",$otherhtml);
				$otherhtml=str_replace("onclick=''","onclick=changevalue('".$_REQUEST["input_ID"]."','".$Y."-".$M."-".$in."')",$otherhtml);
				
				//初始化值，如果是已选择的值，则加上勾,大于今天的才勾上
				
				if(count($indateArr)>0)
				{
					foreach($indateArr as $v)
					{
						if($v==$Y."-".$M."-".$in )
						{
							if(mydifftime($v)) $otherhtml=str_replace("ischeck","checked",$otherhtml);
						}
					}
				}
				echo "".$in."$otherhtml";
			}
			else
			{
				
				echo $in;
			}
			$in++;
			
		}
		
	}
	else
	{
			//任意每一天的日期值格式   若数据个数没有时，则为时间段式的表现形式
			if(count($indateArr)>0)
			{
				if($i>$ervyfday and $i<=M_NUM($Y,$M)+$ervyfday)
				{
					$letdate = date("Y-m-d",strtotime($Y."-".$M."-".$in2));
					$temp1=0;
					foreach($indateArr as $v)
					{
						if($v==$Y."-".$M."-".$in2 )
						{
							if(mydifftime($v)  and difftime($enddate,$letdate)>=0 and difftime_i(strtotime($letdate),strtotime(date("Y-m-d"))+24*60*60*$tqts) >0)//当是大于今天的日期时才有效
							{
								echo "<a href=# style='color:red;' onclick=\"javascript:parent.let_Val('".$input_ID."','".$letdate."');\">".$in2."</a>";
							}
							else
							{
								echo $in2."";
							}
						$temp1=1;
						}
					}
					if($temp1==0) echo $in2."";
					$in2++;
				}
				
				
				
			}
			else
			{
				
				//时间段时的处理
				
				
				if( $sdn<=0 and abs($sdn)<=$getdaysnum+$tqts)
				{
					$D1 = XS($i,$Y,$M);
					
					$M1=$M;
					$letdate = $Y."-".$M1."-".$D1;
					$tt=date("w",strtotime($Y."-".$M."-".$D1));
					$tempc=0;
					if($zhouqi!="")
					{
							if(count($ZhouqidArr)>0)
							{
								foreach($ZhouqidArr as $v)
								{
									if($tt==$v)
									{
										$tempc=1;	
									}
								}
							}
						
						if(($tempc==1 or  mydifftime(strtotime($letdate)-$last_tqts))and difftime($enddate,$letdate)>=0)
						{
							//判断的是每周发团形式的
							
							if(difftime($letdate,$startdate)>=0 and difftime($enddate,$letdate)>=0 and difftime_i(strtotime($letdate),strtotime(date("Y-m-d"))+24*60*60*$tqts) >0  )//当是大于今天的日期时才有效
							{
								echo str_replace($D1,"<a href=# style='color:red;' onclick=\"javascript:parent.let_Val('".$input_ID."','".$letdate."');\">".$D1."</a>",$D1);
							}
							else
							{
								echo $D1;
							}
						}
						else
						{
							echo $D1;
						}
					
					}
					else
					{
						if(mydifftime($letdate)  and difftime($enddate,$letdate)>=0 and difftime_i(strtotime($letdate),strtotime(date("Y-m-d"))+24*60*60*$tqts) >0)//当是大于今天的日期时才有效
						{
							echo str_replace($D1,"<a href=# style='color:red;' onclick=\"javascript:parent.let_Val('".$input_ID."','".$letdate."');\">".$D1."</a>",$D1);
						}
						else
						{
							echo $D1;
						}
					}
				}
				else
				{
					echo XS($i,$Y,$M);
				}
			}
	}

	?>
	</td>
<?
if($i % 7 == 0) echo "</TR><TR align=center>";

}
//*循环格子 end*/
?>
</tr>
<?
//*日历显示 end*/
?>

<tr height="1">
	<td colspan="7" bgcolor="#FFFFFF" align="center">【今天:<? echo date("Y-m-d")?>】<input type="button" value="关闭" onclick="javascript:parent.cdate_hide();"/></td>
</tr>
</table>

<?
//*----------------------------------------------------------------*/
//*css样式*/
?>
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
.*{font-size:14px;}
-->
</style>
<script language="javascript">
function changevalue(elename,v)
{
	
	parent.addvalue(elename,v);
}
</script>